MVC 디자인 패턴 만들기
✒️ 2025-06-23 23:54 내용 수정
- MVC Pattern 참고.
- DB 연결 전 Controller와 View 사이의 요청 데이터 전송을 메인으로 다루었다.
Controller 생성
-
controller 패키지를 생성한 후 Controller 클래스를 생성한다.
- Controller 클래스에는
@ControllerAnnotation을 추가한다.
- Controller 클래스에는
-
@RequestMappingAnnotation과 단축 Annotation으로 Endpoint 메서드를 지정한다.- Endpoint : 클라이언트가 서버에 요청을 보낼 수 있는 특정 URL 경로
/users/1,/hello등
| Annotation | 설명 |
|---|---|
@RequestMapping |
요청의 엔드포인트와 메서드를 연결하는 Annotation |
@GetMapping |
GET 요청에 사용하는 @RequestMapping의 단축 Annotation |
@PostMapping |
POST 요청에 사용하는 단축 Annotation |
@PutMapping |
PUT 요청에 사용하는 단축 Annotation |
@DeleteMapping |
DELETE 요청에 사용하는 단축 Annotation |
Model클래스는 View로 데이터를 전달할 때 사용한다.ViewResolver는 Controller에서 반환한 View의 이름으로src/main/resources/templates내의 실제 View 파일과 연결한다.- Spring 구동 순서 참고.
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
// 데이터 추가
model.addAttribute("message", "Hello World");
model.addAttribute("userName", "홍길동");
return "hello"; // hello.html로 이동
}
}
View 추가
- Thymeleaf를 사용할 경우 먼저
application.properties에서 템플릿 엔진 설정을 적용한다.
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
src/main/resources/templates폴더에 HTML 파일을 생성하고, Thymeleaf 사용 설정을 적용한 후, Controller로부터 받은 데이터를 사용한다.
<!doctype html>
<!-- thymeleaf 사용 설정 추가 -->
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello</title>
</head>
<body>
<h1>Welcome!</h1>
<div>
<p th:text="${message}"></p>
<p th:text="'사용자 : ' + ${userName}"></p>
</div>
</body>
</html>
결과 확인
- web 브라우저를 열고 주소를
http://localhost:8080/endpointName형식으로 접속한다.application.properties에서 port를 변경했다면 변경한 port를 입력한다.
